xlv.imp.active={
	implement:function(){
	},
	method:{
		active_properties:{
			cssClassName:'activated',
			item:null
		},
		active_changed:function(to_item,from_item){
			var memo=xlv.sys.createMemoObject();
			memo.type='active_changed';
			memo.src=this;
			memo.from=from_item;
			memo.to=to_item;
			xlv.sys.broadcastMessage(this,memo);
			setTimeout((function(){Event.fire(this,'xlv:active_changed',memo);}).bind(this),1);
		},
		active_item:function(item,css,fire){
			var p=this.active_properties;
			if(!item||item==p.item) return;
			if(p.item)Element.removeClassName(p.item,css||p.cssClassName);
			var old=p.item;
			p.item=item;
			Element.addClassName(p.item,css||p.cssClassName);
			if(fire!==false)this.active_changed(p.item,old);
		},
		active_activatable:function(item){
			return true;
		},
		active_getActivated:function(){
			return this.active_properties.item;
		}
	}
};

